Statement Object :
एक बार कनेक्शन बन जाने के बाद अगला कार्य होता है डेटाबेस से Interact करना होता है JDBC में तीन इन्टरफेसेस है जो डेटाबेस में PL/SQL Commands भेजने और वहां से डेटा को Retrieve करने के लिए Methods और प्रॉपर्टीज प्रदान करता हैं JDBC में तीन Interface होता हैं
- Statement
- PreparedStatement
- CallableStatement
आइए हम तीनों के बारे में समझते हैं अच्छे से
Statement : Statement इस इंटरफ़ेस का प्रयोग डेटाबेस को समान उद्देश्य के लिए एक्सेस करने के लिए किया जाता है |
यह उस समय उपयोगी होता है जब रन टाइम पर Static SQL Statements का प्रयोग किया जा रहा होता है यह इन्टरफेस में पैरामीटर नहीं पास कर सकते हैं अर्थात पैरामीटर को स्वीकार नहीं कर सकता I
Statement में ऑब्जैक्ट क्रिएट करना
SQL Statement को Execute करने के लिए स्टेटमेन्ट का प्रयोग करने से पहले हमें कनेक्शन ऑब्जेक्ट के createStatement ( )Method की सहायता से एक स्टेटमेन्ट ऑब्जेक्ट बनाना होता है
आइए हम एक उदाहरण से समझते हैं
try
{
stmt = conn.createStatement ( );
.....
}
catch (SQLException e)
{
....
}
finally
{
.......
}
एक बार स्टेटमेन्ट ऑब्जेक्ट के क्रिएट होने के बाद इसमें तीन Execute Method में से किसी एक का प्रयोग SQL स्टेटमेन्ट कोExecute करने के लिए किया जा सकता है |
boolean execute( String SQL )
यदि result-set Object को Retrieve किया जा सकता है तो यह Method बूलियन वैल्यू True को रिटर्न करता है|
नहीं तो यह False को रिटर्न करता है इस Method का प्रयोग SQL DDL स्टटेमेन्ट्स करना अथवा डायनामिक SQL का प्रयोग करने की आवश्यकता होने पर किया जाता है |
int execute Update ( String SQL)
यह Method SQL स्टटेमेन्ट्स के Execute होने से प्रवाहित Rows की संख्या को रिटर्न करता है ऐसे SQL स्टटेमेन्ट्स हैं Exanple : INSERT ,UPDATED , DELETE
ResultSet execteQuery ( String SQL )
यह Method SQL को Execute करने के बाद प्राप्त हुए ResultSet को Retrieve करता हैं |
Statement Object को क्लोस करना
जिस प्रकार से डेटाबेस रिसोर्सेज को सेव करने के लिए कनेक्शन ऑब्जेक्ट को बंद किया जाता है |
इसी कारण से स्टेटमेन्ट ऑब्जेक्ट को भी बंद किया जाता है इस कार्य को करने के लिए बस close ( ) Method को कॉल करना होता है |
यदि हम पहले कनेक्शन ऑब्जेक्ट को बंदclose करते हैं ती स्टेटमेंट ऑब्जेक्ट भी क्लोज हो जाएगा फिर भी हमें Proper Cleanup के लिए पहले स्टेटमेंट ऑब्जेक्ट को क्लोज करके ही कनेक्शन ऑब्जेक्ट को क्लोज करना चाहिए |
Syntax:
Statement stmt = null;
try
{
stmt = conn.createStatement ( );
.....
}
catch ( SQLException e)
{
....
}
finally
{
stmt.close ( );
}
- PreparedStatement
Statement इस इंटरफ़ेस का प्रयोग डेटाबेस को समान उद्देश्य के लिए एक्सेस करने के लिए किया जाता है यह उस समय उपयोगी होता है जब रन टाइम पर Static SQL Statements का प्रयोग किया जा रहा होता है यह इन्टरफेस में पैरामीटर नहीं पास कर सकते हैं अर्थात पैरामीटर को स्वीकार नहीं कर सकता |
Prepared Statement में ऑब्जैक्ट क्रिएट करना
JDBC में सभी पैरामीटर को ? Symbol द्वारा प्रदर्शित किया जाता है इस Symbol को पैरामीटर मार्कर कहां जाता है|
SQL को Execute करने से पहले हमें प्रत्येक पैरामीटर की वैल्यू प्रदान करनी होती है |
set ( ) Method भेजी गई वैल्यू को पैरामीटर के साथ bind करता हैं और यदि वैल्यूज को Supply नहीं किया गया हैं तो एक SQL Exception आ जाता है I
और यह डेटाबेस के साथ Interact करने के लिए स्टेटमेन्ट के सभी Methods..... के साथ भी कार्य करता है |
Syntax :
Prepared Statement pstmt = null;
try
{
String SQL = "Update Employees SET age = ? WHERE id = ?";
pstmt = conn.prepareStatement(SQL) ;
.....
}
catch (SQL Exception e)
{
....
}
finally
{
.....
}
Prepared Statementको क्लोज करना
जिस कारण से अन्य स्टेटमेन्ट ऑब्जेक्ट को Close किया जाता है ठीक उसी प्रकार से Prepared Statement Object को क्लोज किया जाता है |
Syntax :
Prepared Statement pstmt = null;
try
{
String SQL = "Update Employees SET age = ? WHERE id = ?";
pstmt = conn.prepareStatement(SQL) ;
.....
}
catch (SQL Exception e)
{
....
}
finally
{
pstml.close ();
}
- CallableStatement
Callable Statement इस इन्टरफेस का प्रयोग उस समय उपयोगी होता है जब डेटाबेस में स्टोर किए गए प्रोसीजर्स Paramet को एक्सेस किया जाना हो I यह इन्टरफेस रन टाइम इनपुट पैरामीटर को स्वीकार कर सकता है
Callable Statement में ऑब्जैक्ट क्रिएट करना
तीन प्रकार के पैरामीटर्स का प्रयोग किया जाता है IN, OUT, INOUT Prepared Statement केवल IN पैरामीटर का प्रयोग करता है जबकि Callable स्टेटमेंट Object तीन प्रकार के होते हैं |
- IN
- OUT
- INOUT
- IN = IN एक पैरामीटर जिसकी वैल्यू SQL Statement को क्रिएट करते समय न पता हो हम IN पैरामीटरके साथ set ( ) Method के द्वारा वैल्यूज को बाइन्ड Bind करते हैं
- OUT : OUT एक पैरामीटर जिसकी वैल्यू SQL Statement के रिटर्न से सप्लाई की जाती है हम getXXX( ) Method के द्वारा Out पैरामीटर की वैल्यूज की Retrieve करते हैं I
- INOUT : INOUT यह पैरामीटर जो की Input Values और Output Values दोनों प्रदान करता है हम setXX( )Method के द्वारा वैल्यूज को Retrieve करते है I
Syntax :
Callable Statement cstmt = null;
try
{
String SQL = " { call getEmp Name ( ?,?)}";
sctmt = conn.prepareCall(SQL );
....
CATCH ( SQL Exception e )
{
.....
finally
}
....
}
Callable Statementको क्लोस करना
जिस कारण से अन्य स्टेटमेन्ट ऑब्जेक्ट को Close किया जाता है ठीक उसी प्रकार से Prepared Statement Object को क्लोज किया जाता है |
Syntax :
Callable Statement cstmt = null;
try
{
String SQL = " { call getEmp Name ( ?,?)}";
sctmt = conn.prepareCall(SQL );
....
CATCH ( SQL Exception e )
{
.....
finally
}
sctmt.close ( );
}
0 टिप्पणियाँ